import api from "../../utils/api";
import Api from "../../utils/api"
import Config from "../../utils/Config"
Page({
  data: {
    files: [], //格式{{url:xxx.jpg}} 图片存储
    types: [] // 菜谱分类数组
  },
  onLoad() {
    this.getReciprType()
  },
  // 选择图片临时存储路径
  _bindselect(e) {
    let tempFilePaths = e.detail.tempFilePaths;
    // 转换图片的格式为url:图片路径
    let files = tempFilePaths.map((item) => {
      return {
        url: item
      }
    })
    // 拿到旧的图片的值 并将它们拼接起来
    files = this.data.files.concat(files)
    this.setData({
      files
    })

  },
  // 删除图片
  _binddelete(e) {
    // console.log(;
    let index = e.detail.index;
    // 截取图片
    this.data.files.splice(index, 1)
  },
  // 获取菜谱分类 查询所有的菜谱渲染到页面
  async getReciprType() {
    let res = await Api.findAll(Config.tables.recipeTypeTable)
    this.setData({
      types: res.data
    })
  },
  // 发布菜谱
  async doSubmi(e) {
    // 通过解构赋值获取每一项数据
    let {
      recipeTypeid,
      recipesMake,
      recipesName
    } = e.detail.value;
    let files = await this._uploadFiles(this.data.files); //调用获取图片地址
    // console.log(files);

    // 定义收藏个数，浏览次数，status，添加时间
    let follows = 0,
      views = 0,
      status = 1,
      time = new Date().getTime();

    // 判断菜单名称等是否为空，为空则禁止发布
    if(recipeTypeid==""||recipesMake==""||recipesName==""
    ||this.data.files.length<=0){
      wx.showToast({
        title: '缺少必填信息',
        icon:"none"
      })
      return
    } 
    let data = {
      recipeTypeid, recipesMake,recipesName,follows,views,status,time,files // 上传数据库所需内容
    }
    // 添加到数据库
    let  res = await Api.add(Config.tables.recipesTable,data,files)
    if(res._id){
      wx.showToast({
        title: '发布成功',
      })
      setTimeout(function(){ // 返回上一个页面
        wx.navigateBack({
          delta: 1,
        })
      },1500)
    }
  },
  // 多张图片上传
  _uploadFiles(files) {
    let allPromise = []
    files.forEach((item, index) => {
      // 将图片的后缀 jpg取出来
      let extName = item.url.split(".").pop();
      // 上传的文件名，添加时间戳以防止重复
      let filesName = new Date().getTime() + index + "." + extName;
      // 图片上传
      let promise = wx.cloud.uploadFile({ //定义promise对象
        cloudPath: "C-recipes/" + filesName, // 上传至云端的路径
        filePath: item.url, // 小程序临时文件路径
      })
      allPromise.push(promise)
    })
    return Promise.all(allPromise)
  }
})